return {
    "nvim-lualine/lualine.nvim",
    dependencies = { "nvim-tree/nvim-web-devicons" },
    event = "UIEnter",
    opts = {
        sections = {
            lualine_a = { "mode" },
            lualine_b = { "branch", "diff" },
            lualine_c = { "filename", "progress", "location" },
            lualine_x = { "searchcount", "selectioncount" },
            lualine_y = { "diagnostics" },
            lualine_z = { "encoding", "fileformat", "filetype" },
        },
        options = {
            component_separators = "",
            section_separators = { left = "", right = "" },
        },
    },
    config = function(_, opts)
        local mocha = require("catppuccin.palettes").get_palette "mocha"

        local function show_macro_recording()
            local recording_register = vim.fn.reg_recording()
            if recording_register == "" then
                return ""
            else
                return "󰑋 " .. recording_register
            end
        end

        local macro_recording = {
            show_macro_recording,
            color = { fg = "#333333", bg = mocha.red },
            separator = { left = "", right = "" },
            padding = 0,
        }

        table.insert(opts.sections.lualine_x, 1, macro_recording)

        require("lualine").setup(opts)
    end,
}
